package test;

import java.util.Arrays;

public class Demo1 {

    public static void main(String[] args) {
        String str1=null;//str1这个引用  不指向任何的对象
        String str2="";//str2这个引用  指向的字符串是空的

    }

    public static void main8(String[] args) {
        String str1="11";
        String str2=new String("1")+new String("1");
        str2.intern();//当字符串常量池没有的时候，手动入池
        System.out.println(str1==str2);//false
        System.out.println(str1.equals(str2));//true 比较引用所指向的内容是否相同
    }

    public static void main7(String[] args) {
        String str2=new String("1")+new String("1");
        str2.intern();//当字符串常量池没有的时候，手动入池
        String str1="11";
        System.out.println(str1==str2);//true
        System.out.println(str1.equals(str2));
    }

    public static void main6(String[] args) {
        String str1="11";
        String str2=new String("1")+new String("1");
        System.out.println(str1==str2);
        System.out.println(str1.equals(str2));
    }


    public static void main5(String[] args) {
        String str1="hello";
        String str2="he"+"llo";//此时都是常量，在编译的时候就已经确定好了是"hello"
        System.out.println(str1==str2);// true
        System.out.println("===");
        String str3="he";//此时str3是变量，在编译的时候，无法确定是什么
        String str4=str3+"llo";
        System.out.println(str1==str4);//false
    }


    public static void main4(String[] args) {
        String str1="hello";
        String str2=new String("hello");
        System.out.println(str1==str2);//【false】比较的不是内容，而是地址

        System.out.println("====");
        String str3="hello";
        String str4="hello";
        System.out.println(str3==str4);//true
    }


    public static void func(String s,char[] array){
        s="gsqlmbo";
        array[0]='p';
    }
    public static void main3(String[] args) {
        String str="abcdef";
        char[] chars={'b','q','d'};
        func(str,chars);
        System.out.println(str); //abcdef
        System.out.println(Arrays.toString(chars));//[p, q, d]

    }




    public static void main2(String[] args) {
        String str="abcdef";
        String str2=str;
        System.out.println(str);
        System.out.println(str2);
        str="aaa";
        System.out.println("====");
        System.out.println(str);
        System.out.println(str2);
    }



    public static void main1(String[] args) {
        String str="aaa";
        String str2=new String("www");
        char[] ch={'a','b','r'};
        String s=new String(ch);
        System.out.println(ch);
    }
}
